// ⚠️  此文件已废弃 - This file is deprecated
// 统一的配置接口已迁移至 ConfigurationAppServiceInterfaces.cs
// Unified configuration interfaces have been migrated to ConfigurationAppServiceInterfaces.cs
//
// 为了向后兼容保留此文件，建议新代码使用统一接口文件中的定义
// This file is kept for backward compatibility. New code should use the unified interface.

using System;
using System.Collections.Generic;
using System.Threading.Tasks;
using Volo.Abp.Application.Dtos;
using Volo.Abp.Application.Services;
using Matrix.Configuration.DTOs;

namespace Matrix.Configuration.Contracts
{
    /// <summary>
    /// 命名空间配置管理应用服务接口（已废弃）
    /// 请使用 ConfigurationAppServiceInterfaces.cs 中的统一接口
    /// </summary>
    [Obsolete("此接口已废弃，请使用 ConfigurationAppServiceInterfaces.cs 中的统一接口", false)]
    public interface INamespaceConfigurationAppService : IApplicationService
    {
        Task<T> GetAsync<T>(string name, string? @namespace = null);
        Task SetAsync<T>(string name, T value, string? @namespace = null);
        Task<PagedResultDto<NamespaceConfigurationDto>> GetNamespaceConfigurationsAsync(
            string? @namespace = null,
            string filter = "",
            int maxResultCount = 10,
            int skipCount = 0);
        Task RemoveNamespaceConfigurationAsync(string name, string? @namespace = null);
        Task CopyConfigurationsToNamespaceAsync(
            string sourceNamespace,
            string targetNamespace,
            List<string>? configurationNames = null);
        Task ResetToDefaultAsync(string @namespace, List<string>? configurationNames = null);
        Task<List<string>> GetNamespacesAsync();
        Task RemoveNamespaceAsync(string @namespace);
    }
}